{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"http://hilpisch.com/tpq_logo.png\" alt=\"The Python Quants\" width=\"35%\" align=\"right\" border=\"0\"><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Python for Finance"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Analyze Big Financial Data**\n",
    "\n",
    "O'Reilly (2014)\n",
    "\n",
    "Yves Hilpisch"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img style=\"border:0px solid grey;\" src=\"http://hilpisch.com/python_for_finance.png\" alt=\"Python for Finance\" width=\"30%\" align=\"left\" border=\"0\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Buy the book ** |\n",
    "<a href='http://shop.oreilly.com/product/0636920032441.do' target='_blank'>O'Reilly</a> |\n",
    "<a href='http://www.amazon.com/Yves-Hilpisch/e/B00JCYHHJM' target='_blank'>Amazon</a>\n",
    "\n",
    "**All book codes & IPYNBs** |\n",
    "<a href=\"http://oreilly.quant-platform.com\">http://oreilly.quant-platform.com</a>\n",
    "\n",
    "**The Python Quants GmbH** | <a href='http://pythonquants.com' target='_blank'>www.pythonquants.com</a>\n",
    "\n",
    "**Contact us** | <a href='mailto:analytics@pythonquants.com'>analytics@pythonquants.com</a>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Input-Output Operations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Basic I/O with Python"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Writing Objects to Disk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "uuid": "d5bf9798-386b-49b8-a703-36263d9d75d4"
   },
   "outputs": [],
   "source": [
    "path = './data/'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "uuid": "c2722e94-01ea-4f98-804f-56fe1b666770"
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from random import gauss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false,
    "uuid": "7d03b06c-a907-4a16-913f-e6a8f9a05d51"
   },
   "outputs": [],
   "source": [
    "a = [gauss(1.5, 2) for i in range(1000000)]\n",
    "  # generation of normally distributed randoms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "uuid": "39126a87-5a20-4090-b805-b6b1eb634952"
   },
   "outputs": [],
   "source": [
    "import pickle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false,
    "uuid": "4aa88b7c-3155-4311-9afc-564bf3b06225"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'w')\n",
    "  # open file for writing\n",
    "  # Note: existing file might be overwritten"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "uuid": "e2611db7-97ed-4162-9cc5-127c7cd89cbd"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1.71 s, sys: 17 ms, total: 1.72 s\n",
      "Wall time: 1.72 s\n"
     ]
    }
   ],
   "source": [
    "%time pickle.dump(a, pkl_file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "uuid": "1671d5b6-04cd-42ed-b7dd-ca3001521379"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<open file './data/data.pkl', mode 'w' at 0x7fcd0c17b150>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pkl_file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "uuid": "f2b0c608-c399-401b-b8fa-d44d8eca54b8"
   },
   "outputs": [],
   "source": [
    "pkl_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false,
    "uuid": "f401db99-56f3-49a5-9c75-772fe5d00d07"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 20972199 Aug  8 11:39 ./data/data.pkl\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false,
    "uuid": "8c9bd301-e980-4eb5-9021-4fde182f5eb7"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'r')  # open file for reading"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false,
    "uuid": "6c8c4ae7-1ece-4b7c-87bc-8457da4798b2"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1.35 s, sys: 10 ms, total: 1.36 s\n",
      "Wall time: 1.36 s\n"
     ]
    }
   ],
   "source": [
    "%time b = pickle.load(pkl_file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "uuid": "8bf2e00b-fa06-4524-aa51-6b295fabad00"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1.919336270857672,\n",
       " 4.004240642640712,\n",
       " -0.8107998214661332,\n",
       " 1.0178464344610012,\n",
       " -0.36270707846365546]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false,
    "uuid": "253951a8-ecec-4fdf-a502-86cfa1d1186d"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1.919336270857672,\n",
       " 4.004240642640712,\n",
       " -0.8107998214661332,\n",
       " 1.0178464344610012,\n",
       " -0.36270707846365546]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false,
    "uuid": "90b9f136-8195-4f32-9907-1b88469ae55e"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.allclose(np.array(a), np.array(b))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false,
    "uuid": "066a1d61-c385-48e7-9690-fecc23e5eaf3"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum(np.array(a) - np.array(b))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false,
    "uuid": "7a6b9460-b5ac-4ab5-b083-9912f9dfcef8"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'w')  # open file for writing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false,
    "uuid": "bd6b8e9a-d093-4f98-b88c-27aef388957b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 366 ms, sys: 19 ms, total: 385 ms\n",
      "Wall time: 394 ms\n"
     ]
    }
   ],
   "source": [
    "%time pickle.dump(np.array(a), pkl_file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false,
    "uuid": "d517f9d6-8176-424c-89ef-0c892f9fd61c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 339 ms, sys: 18 ms, total: 357 ms\n",
      "Wall time: 356 ms\n"
     ]
    }
   ],
   "source": [
    "%time pickle.dump(np.array(a) ** 2, pkl_file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false,
    "uuid": "5f558934-6f53-472e-9040-a5c96ee1718d"
   },
   "outputs": [],
   "source": [
    "pkl_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false,
    "uuid": "b129b0ae-6bcc-4946-817a-ff01c155eacb"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 44094923 Aug  8 11:39 ./data/data.pkl\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false,
    "uuid": "59d5dceb-8779-46ff-b2ae-c2e43a7d2c10"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'r')  # open file for reading"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false,
    "uuid": "0f981d7b-0a68-412d-bb9b-a377524e0f2c"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.91933627,  4.00424064, -0.81079982, ..., -1.88984922,\n",
       "        1.82196898,  1.40886468])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = pickle.load(pkl_file)\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false,
    "uuid": "1a9cb2b5-a180-43f3-b2ed-20de3148b8a6"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  3.68385172,  16.03394312,   0.65739635, ...,   3.57153006,\n",
       "         3.31957096,   1.98489968])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = pickle.load(pkl_file)\n",
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false,
    "uuid": "6beb0285-c53c-4f56-ac42-62000ef75257"
   },
   "outputs": [],
   "source": [
    "pkl_file.close()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false,
    "uuid": "df469b3f-55c4-43e8-a01d-f850f2153871"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'w')  # open file for writing\n",
    "pickle.dump({'x' : x, 'y' : y}, pkl_file)\n",
    "pkl_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false,
    "uuid": "e6f0219a-ceb4-481d-b033-065e122493c8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "y [  3.68385172  16.03394312   0.65739635   1.03601136]\n",
      "x [ 1.91933627  4.00424064 -0.81079982  1.01784643]\n"
     ]
    }
   ],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'r')  # open file for writing\n",
    "data = pickle.load(pkl_file)\n",
    "pkl_file.close()\n",
    "for key in data.keys():\n",
    "    print key, data[key][:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false,
    "uuid": "dc3181d1-7c8c-4960-8a9a-8a4d64c58a3f"
   },
   "outputs": [],
   "source": [
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reading and Writing Text Files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false,
    "uuid": "5124219c-e041-4b36-af62-03faea5c0df1"
   },
   "outputs": [],
   "source": [
    "rows = 5000\n",
    "a = np.random.standard_normal((rows, 5))  # dummy data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false,
    "uuid": "5942c6e2-877a-4c0c-acca-11390e9a02f5"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.3213,  0.1429,  0.956 ,  0.9603,  1.2606],\n",
       "       [-0.1856, -0.4741, -1.3159,  0.8751,  0.0503],\n",
       "       [ 0.7914, -0.1609, -0.3318,  0.2105,  1.1224],\n",
       "       ..., \n",
       "       [-0.534 ,  0.6207,  0.3908,  0.4189,  0.4367],\n",
       "       [-1.59  , -0.5554, -0.4741,  1.5922,  1.7793],\n",
       "       [-0.2924,  0.4899,  0.9429,  0.285 ,  0.6921]])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a.round(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": false,
    "uuid": "32f5b082-2fcb-4090-80ba-174cc347e519"
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "t = pd.date_range(start='2014/1/1', periods=rows, freq='H')\n",
    "    # set of hourly datetime objects"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false,
    "uuid": "d52b1a47-3bca-4870-9829-1aef62f0952a"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2014-01-01 00:00:00', '2014-01-01 01:00:00',\n",
       "               '2014-01-01 02:00:00', '2014-01-01 03:00:00',\n",
       "               '2014-01-01 04:00:00', '2014-01-01 05:00:00',\n",
       "               '2014-01-01 06:00:00', '2014-01-01 07:00:00',\n",
       "               '2014-01-01 08:00:00', '2014-01-01 09:00:00', \n",
       "               ...\n",
       "               '2014-07-27 22:00:00', '2014-07-27 23:00:00',\n",
       "               '2014-07-28 00:00:00', '2014-07-28 01:00:00',\n",
       "               '2014-07-28 02:00:00', '2014-07-28 03:00:00',\n",
       "               '2014-07-28 04:00:00', '2014-07-28 05:00:00',\n",
       "               '2014-07-28 06:00:00', '2014-07-28 07:00:00'],\n",
       "              dtype='datetime64[ns]', length=5000, freq='H', tz=None)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": false,
    "uuid": "39075f54-64cb-42c2-9798-be6638636a15"
   },
   "outputs": [],
   "source": [
    "csv_file = open(path + 'data.csv', 'w')  # open file for writing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false,
    "uuid": "3804898d-dae7-4de0-b0a1-976cd8e43cb3"
   },
   "outputs": [],
   "source": [
    "header = 'date,no1,no2,no3,no4,no5\\n'\n",
    "csv_file.write(header)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false,
    "uuid": "00c96e45-bf91-42d8-b6c9-eb343ee537b7"
   },
   "outputs": [],
   "source": [
    "for t_, (no1, no2, no3, no4, no5) in zip(t, a):\n",
    "    s = '%s,%f,%f,%f,%f,%f\\n' % (t_, no1, no2, no3, no4, no5)\n",
    "    csv_file.write(s)\n",
    "csv_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false,
    "uuid": "03523876-01c1-410f-aac5-55fcf8aa0604"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 337374 Aug  8 11:39 ./data/data.csv\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false,
    "uuid": "b290e5d3-8e56-4d53-acae-51accd08c4f7"
   },
   "outputs": [],
   "source": [
    "csv_file = open(path + 'data.csv', 'r')  # open file for reading"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": false,
    "uuid": "7b1242f5-5892-44bd-a305-addf9daff316"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "date,no1,no2,no3,no4,no5\n",
      "2014-01-01 00:00:00,0.321301,0.142888,0.956041,0.960300,1.260565\n",
      "2014-01-01 01:00:00,-0.185629,-0.474109,-1.315947,0.875079,0.050341\n",
      "2014-01-01 02:00:00,0.791354,-0.160866,-0.331847,0.210507,1.122358\n",
      "2014-01-01 03:00:00,1.468594,0.523180,1.413321,-1.009979,0.677074\n"
     ]
    }
   ],
   "source": [
    "for i in range(5):\n",
    "    print csv_file.readline(),"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false,
    "uuid": "00148061-9d3a-4459-b8b8-63c98f14194b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "date,no1,no2,no3,no4,no5\n",
      "2014-01-01 00:00:00,0.321301,0.142888,0.956041,0.960300,1.260565\n",
      "2014-01-01 01:00:00,-0.185629,-0.474109,-1.315947,0.875079,0.050341\n",
      "2014-01-01 02:00:00,0.791354,-0.160866,-0.331847,0.210507,1.122358\n",
      "2014-01-01 03:00:00,1.468594,0.523180,1.413321,-1.009979,0.677074\n"
     ]
    }
   ],
   "source": [
    "csv_file = open(path + 'data.csv', 'r')\n",
    "content = csv_file.readlines()\n",
    "for line in content[:5]:\n",
    "    print line,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false,
    "uuid": "2b2384ca-8927-49e1-8070-33ef0c21a1a9"
   },
   "outputs": [],
   "source": [
    "csv_file.close()\n",
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SQL Databases"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false,
    "uuid": "39c9650b-0430-4e66-b461-faecdb511537"
   },
   "outputs": [],
   "source": [
    "import sqlite3 as sq3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": false,
    "uuid": "9e163352-767b-4888-a286-9a79265bb19b"
   },
   "outputs": [],
   "source": [
    "query = 'CREATE TABLE numbs (Date date, No1 real, No2 real)'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false,
    "uuid": "cc01fd41-a6c6-426b-b235-42c903ff6c00"
   },
   "outputs": [],
   "source": [
    "con = sq3.connect(path + 'numbs.db')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": false,
    "uuid": "d97dad1a-10cc-43c0-a04a-a5da9b98396b"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<sqlite3.Cursor at 0x7fcd0c153b20>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(query)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": false,
    "uuid": "cc2e7d31-8239-48b0-b032-f11a514d9349"
   },
   "outputs": [],
   "source": [
    "con.commit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false,
    "uuid": "6d76f99f-f6bb-4aad-b386-06946366bbe6"
   },
   "outputs": [],
   "source": [
    "import datetime as dt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "collapsed": false,
    "uuid": "a37b7780-d824-4558-b12e-9e5dec6b3056"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<sqlite3.Cursor at 0x7fccf39be880>"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute('INSERT INTO numbs VALUES(?, ?, ?)',\n",
    "            (dt.datetime.now(), 0.12, 7.3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": false,
    "uuid": "5d882442-b6fb-4788-81b8-9f7814a352ae"
   },
   "outputs": [],
   "source": [
    "data = np.random.standard_normal((10000, 2)).round(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "collapsed": false,
    "uuid": "58b51e61-ed1a-4c5e-999a-0f55072e5d32"
   },
   "outputs": [],
   "source": [
    "for row in data:\n",
    "    con.execute('INSERT INTO numbs VALUES(?, ?, ?)',\n",
    "                (dt.datetime.now(), row[0], row[1]))\n",
    "con.commit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": false,
    "uuid": "667cbd3a-e001-4548-8679-10aec0d31354"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(u'2015-08-08 11:39:19.198224', 0.12, 7.3),\n",
       " (u'2015-08-08 11:39:19.588959', -1.80255, 0.19796),\n",
       " (u'2015-08-08 11:39:19.589034', -0.65236, -1.02442),\n",
       " (u'2015-08-08 11:39:19.589059', 0.42357, -0.15053),\n",
       " (u'2015-08-08 11:39:19.589074', 0.37267, 0.46058),\n",
       " (u'2015-08-08 11:39:19.589084', -1.56685, -0.50323),\n",
       " (u'2015-08-08 11:39:19.589094', 0.14706, 0.98503),\n",
       " (u'2015-08-08 11:39:19.589104', -1.12345, -0.54418),\n",
       " (u'2015-08-08 11:39:19.589127', 1.30438, -1.33077),\n",
       " (u'2015-08-08 11:39:19.589139', 0.74059, -0.45809)]"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute('SELECT * FROM numbs').fetchmany(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": false,
    "uuid": "c9217058-4cb9-49b9-b81b-a4c370fce834"
   },
   "outputs": [],
   "source": [
    "pointer = con.execute('SELECT * FROM numbs')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": false,
    "uuid": "7088d1c6-aed9-457a-a84a-58b1718ad164"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(u'2015-08-08 11:39:19.198224', 0.12, 7.3)\n",
      "(u'2015-08-08 11:39:19.588959', -1.80255, 0.19796)\n",
      "(u'2015-08-08 11:39:19.589034', -0.65236, -1.02442)\n"
     ]
    }
   ],
   "source": [
    "for i in range(3):\n",
    "    print pointer.fetchone()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": false,
    "uuid": "3f80d448-2ff3-4e07-80ce-d8971f367a2c"
   },
   "outputs": [],
   "source": [
    "con.close()\n",
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Writing and Reading Numpy Arrays"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "collapsed": false,
    "uuid": "55cb3a69-0ad9-41eb-9e4f-33ce8a87cf3c"
   },
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "collapsed": false,
    "uuid": "4e65636e-de0f-49d1-bd67-b63868fb3a3a"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3681360"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dtimes = np.arange('2015-01-01 10:00:00', '2021-12-31 22:00:00',\n",
    "                  dtype='datetime64[m]')  # minute intervals\n",
    "len(dtimes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "collapsed": false,
    "uuid": "d5d873f2-4ffa-4fad-a802-9c12a9e30046"
   },
   "outputs": [],
   "source": [
    "dty = np.dtype([('Date', 'datetime64[m]'), ('No1', 'f'), ('No2', 'f')])\n",
    "data = np.zeros(len(dtimes), dtype=dty)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": false,
    "uuid": "d8cd7ec4-a323-44db-91ba-9a8a9edde1b4"
   },
   "outputs": [],
   "source": [
    "data['Date'] = dtimes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "collapsed": false,
    "uuid": "3f9e6dc3-23c8-46b2-b776-c5f73d22ce04"
   },
   "outputs": [],
   "source": [
    "a = np.random.standard_normal((len(dtimes), 2)).round(5)\n",
    "data['No1'] = a[:, 0]\n",
    "data['No2'] = a[:, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "collapsed": false,
    "uuid": "d783e0e3-0238-49f0-b3cf-655012d25ff3"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1e+03 µs, sys: 41 ms, total: 42 ms\n",
      "Wall time: 41.9 ms\n"
     ]
    }
   ],
   "source": [
    "%time np.save(path + 'array', data)  # suffix .npy is added"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "collapsed": false,
    "uuid": "329fb352-9724-4f9b-98e9-3d0d144c9cf9"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 58901888 Aug  8 11:39 ./data/array.npy\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "collapsed": false,
    "uuid": "b5f60285-80a3-4caa-b528-064b5302464b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 4 ms, sys: 13 ms, total: 17 ms\n",
      "Wall time: 290 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([ (datetime.datetime(2015, 1, 1, 9, 0), 1.6426500082015991, 0.8727200031280518),\n",
       "       (datetime.datetime(2015, 1, 1, 9, 1), 0.694819986820221, -0.373199999332428),\n",
       "       (datetime.datetime(2015, 1, 1, 9, 2), -1.0828800201416016, -0.7111499905586243),\n",
       "       ...,\n",
       "       (datetime.datetime(2021, 12, 31, 20, 57), -0.878279983997345, -1.821310043334961),\n",
       "       (datetime.datetime(2021, 12, 31, 20, 58), -0.21980999410152435, 0.37689998745918274),\n",
       "       (datetime.datetime(2021, 12, 31, 20, 59), -0.3513000011444092, -0.20430000126361847)], \n",
       "      dtype=[('Date', '<M8[m]'), ('No1', '<f4'), ('No2', '<f4')])"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time np.load(path + 'array.npy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "collapsed": false,
    "uuid": "d10836fb-aa11-4fb9-8c2c-24d46f48b46b"
   },
   "outputs": [],
   "source": [
    "data = np.random.standard_normal((10000, 6000))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false,
    "uuid": "2b48a768-2abb-46c1-9499-946e4e43f26e"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 0 ns, sys: 338 ms, total: 338 ms\n",
      "Wall time: 1.68 s\n"
     ]
    }
   ],
   "source": [
    "%time np.save(path + 'array', data) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": false,
    "uuid": "c0de71b2-0d43-4752-82e4-982cc40fc47a"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 480000080 Aug  8 11:39 ./data/array.npy\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": false,
    "uuid": "3bedfde2-d212-40e6-a043-379e416fcc08"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1e+03 µs, sys: 90 ms, total: 91 ms\n",
      "Wall time: 90.1 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[ 1.869195  ,  2.51181551,  0.50299449, ...,  0.44741184,\n",
       "         2.62600418,  1.20416049],\n",
       "       [ 0.33248484,  1.59775217, -0.4236616 , ...,  0.6692424 ,\n",
       "        -0.77519336,  0.0099632 ],\n",
       "       [ 0.23082571,  1.27221502,  2.53244799, ..., -0.06913284,\n",
       "        -0.21342786, -0.05151974],\n",
       "       ..., \n",
       "       [ 0.23409942, -1.28031167, -1.69010745, ...,  0.34195653,\n",
       "        -0.11697697,  0.97838194],\n",
       "       [-1.77468058,  0.63968047, -0.0526429 , ...,  0.04221046,\n",
       "        -1.52572223,  0.10966556],\n",
       "       [-0.0533519 ,  0.50078756,  0.20619223, ..., -0.6263904 ,\n",
       "        -0.80380649, -0.22608983]])"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time np.load(path + 'array.npy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "collapsed": false,
    "uuid": "b5de422d-014e-4f1f-b80c-4c1333920a57"
   },
   "outputs": [],
   "source": [
    "data = 0.0\n",
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## I/O with pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": false,
    "uuid": "e0ba11e0-7bdf-4e1f-b8a2-0566cb5ab7a7"
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "data = np.random.standard_normal((1000000, 5)).round(5)\n",
    "        # sample data set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": false,
    "uuid": "366021ec-1265-4fef-ae96-b280c7f3cd2b"
   },
   "outputs": [],
   "source": [
    "filename = path + 'numbs'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SQL Database"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "collapsed": false,
    "uuid": "ec2ee399-b7d1-4900-b9d8-f4e76492954e"
   },
   "outputs": [],
   "source": [
    "import sqlite3 as sq3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "collapsed": false,
    "uuid": "296ae8af-8da3-4f6d-98bd-2816374d8526"
   },
   "outputs": [],
   "source": [
    "query = 'CREATE TABLE numbers (No1 real, No2 real,\\\n",
    "        No3 real, No4 real, No5 real)'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "collapsed": false,
    "uuid": "41eac653-cff4-4bab-b27a-18982f4b6159"
   },
   "outputs": [],
   "source": [
    "con = sq3.Connection(filename + '.db')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "collapsed": false,
    "uuid": "8c1f7339-7383-4716-b1dc-d18bdd651bfe"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<sqlite3.Cursor at 0x7fccf39beb20>"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(query)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "collapsed": false,
    "uuid": "c9bd1eba-510d-4b60-89bf-88dd90e96b4f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 5.23 s, sys: 86 ms, total: 5.32 s\n",
      "Wall time: 7.54 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "con.executemany('INSERT INTO numbers VALUES (?, ?, ?, ?, ?)', data)\n",
    "con.commit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": false,
    "uuid": "f2331de4-877b-48fe-aac1-fd823af82b24"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 54446080 Aug  8 11:39 ./data/numbs.db\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "collapsed": false,
    "uuid": "36c34da0-f8d8-4bf5-8241-45266a118747"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(0.43148, -1.3539, -2.20135, 0.6723, 0.90518), (1.43439, 0.10531, -0.81617, -0.69314, 0.42175)]\n",
      "CPU times: user 761 ms, sys: 70 ms, total: 831 ms\n",
      "Wall time: 830 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "temp = con.execute('SELECT * FROM numbers').fetchall()\n",
    "print temp[:2]\n",
    "temp = 0.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "collapsed": false,
    "uuid": "1ed09d3f-24a5-4936-b64c-a205182b5910"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 361 ms, sys: 18 ms, total: 379 ms\n",
      "Wall time: 379 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "query = 'SELECT * FROM numbers WHERE No1 > 0 AND No2 < 0'\n",
    "res = np.array(con.execute(query).fetchall()).round(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "collapsed": false,
    "uuid": "d3100151-5563-48ca-8ba6-cc9a623d03cc"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-4.5, 0.5)"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nX2tLAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fccefcf9990>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "res = res[::100]  # every 100th result\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.plot(res[:, 0], res[:, 1], 'ro')\n",
    "plt.grid(True); plt.xlim(-0.5, 4.5); plt.ylim(-4.5, 0.5)\n",
    "# tag: scatter_query\n",
    "# title: Plot of the query result\n",
    "# size: 60"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### From SQL to pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "collapsed": false,
    "uuid": "300b95ab-eeff-46e7-a257-80e8fdf37ee6"
   },
   "outputs": [],
   "source": [
    "import pandas.io.sql as pds"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "collapsed": false,
    "uuid": "d446ef85-a7d0-4aba-8b93-d2d60a1aee9b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1.06 s, sys: 69 ms, total: 1.13 s\n",
      "Wall time: 3.52 s\n"
     ]
    }
   ],
   "source": [
    "%time data = pds.read_sql('SELECT * FROM numbers', con)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "collapsed": false,
    "uuid": "052c40c0-6bb7-4084-9e84-da330dca43db"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>No1</th>\n",
       "      <th>No2</th>\n",
       "      <th>No3</th>\n",
       "      <th>No4</th>\n",
       "      <th>No5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.43148</td>\n",
       "      <td>-1.35390</td>\n",
       "      <td>-2.20135</td>\n",
       "      <td>0.67230</td>\n",
       "      <td>0.90518</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.43439</td>\n",
       "      <td>0.10531</td>\n",
       "      <td>-0.81617</td>\n",
       "      <td>-0.69314</td>\n",
       "      <td>0.42175</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.54029</td>\n",
       "      <td>-0.11770</td>\n",
       "      <td>0.11167</td>\n",
       "      <td>-0.24472</td>\n",
       "      <td>-0.41014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.39944</td>\n",
       "      <td>-0.47731</td>\n",
       "      <td>0.74140</td>\n",
       "      <td>1.19819</td>\n",
       "      <td>0.07989</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.55866</td>\n",
       "      <td>-0.87625</td>\n",
       "      <td>1.22017</td>\n",
       "      <td>-0.40954</td>\n",
       "      <td>0.97118</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       No1      No2      No3      No4      No5\n",
       "0  0.43148 -1.35390 -2.20135  0.67230  0.90518\n",
       "1  1.43439  0.10531 -0.81617 -0.69314  0.42175\n",
       "2 -1.54029 -0.11770  0.11167 -0.24472 -0.41014\n",
       "3 -0.39944 -0.47731  0.74140  1.19819  0.07989\n",
       "4 -0.55866 -0.87625  1.22017 -0.40954  0.97118"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {
    "collapsed": false,
    "uuid": "a5f5d023-dfbb-4b54-a622-38a48b3d00a1"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 28 ms, sys: 0 ns, total: 28 ms\n",
      "Wall time: 27.8 ms\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>No1</th>\n",
       "      <th>No2</th>\n",
       "      <th>No3</th>\n",
       "      <th>No4</th>\n",
       "      <th>No5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.43148</td>\n",
       "      <td>-1.35390</td>\n",
       "      <td>-2.20135</td>\n",
       "      <td>0.67230</td>\n",
       "      <td>0.90518</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.01914</td>\n",
       "      <td>-0.66203</td>\n",
       "      <td>-0.86332</td>\n",
       "      <td>2.05435</td>\n",
       "      <td>-0.26633</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.32140</td>\n",
       "      <td>-0.61428</td>\n",
       "      <td>-1.39558</td>\n",
       "      <td>0.12805</td>\n",
       "      <td>-1.47910</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.62356</td>\n",
       "      <td>-0.71995</td>\n",
       "      <td>-0.33065</td>\n",
       "      <td>-0.84202</td>\n",
       "      <td>-0.64460</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>1.43647</td>\n",
       "      <td>-0.42635</td>\n",
       "      <td>0.69048</td>\n",
       "      <td>-0.05409</td>\n",
       "      <td>0.92119</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        No1      No2      No3      No4      No5\n",
       "0   0.43148 -1.35390 -2.20135  0.67230  0.90518\n",
       "5   1.01914 -0.66203 -0.86332  2.05435 -0.26633\n",
       "6   0.32140 -0.61428 -1.39558  0.12805 -1.47910\n",
       "10  0.62356 -0.71995 -0.33065 -0.84202 -0.64460\n",
       "14  1.43647 -0.42635  0.69048 -0.05409  0.92119"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time data[(data['No1'] > 0) & (data['No2'] < 0)].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "collapsed": false,
    "uuid": "2aa6d1e0-e157-4d5b-8a43-3fc696679511"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 46 ms, sys: 0 ns, total: 46 ms\n",
      "Wall time: 46.1 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "res = data[['No1', 'No2']][((data['No1'] > 0.5) | (data['No1'] < -0.5))\n",
    "                     & ((data['No2'] < -1) | (data['No2'] > 1))]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "collapsed": false,
    "uuid": "d46cc119-c34b-4d3f-becd-f625c1a70f78"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-4.8018900000000002,\n",
       " 4.3225600000000002,\n",
       " -4.7240099999999998,\n",
       " 4.8296700000000001)"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fcce14da8d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(res.No1, res.No2, 'ro')\n",
    "plt.grid(True); plt.axis('tight')\n",
    "# tag: data_scatter_1\n",
    "# title: Scatter plot of complex query results\n",
    "# size: 55"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "collapsed": false,
    "uuid": "7017f5f6-2a19-4d1e-b256-4936081ab91a"
   },
   "outputs": [],
   "source": [
    "h5s = pd.HDFStore(filename + '.h5s', 'w')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "collapsed": false,
    "uuid": "eec6ad05-c74e-49e9-bd35-965d56ba3bc9"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 17 ms, sys: 40 ms, total: 57 ms\n",
      "Wall time: 167 ms\n"
     ]
    }
   ],
   "source": [
    "%time h5s['data'] = data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": false,
    "uuid": "69057178-872b-4080-8d36-3ea1d9b56b18"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<class 'pandas.io.pytables.HDFStore'>\n",
       "File path: ./data/numbs.h5s\n",
       "/data            frame        (shape->[1000000,5])"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "h5s"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "collapsed": false,
    "uuid": "179c2cf9-9505-4e1a-b6fc-f71429bbfd6d"
   },
   "outputs": [],
   "source": [
    "h5s.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "collapsed": false,
    "uuid": "f13d24ff-afa4-453c-b098-ce986f0ec341"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 3 ms, sys: 11 ms, total: 14 ms\n",
      "Wall time: 13.6 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "h5s = pd.HDFStore(filename + '.h5s', 'r')\n",
    "temp = h5s['data']\n",
    "h5s.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "collapsed": false,
    "uuid": "96b612da-9d26-498d-9b79-716d0bc9c5fa"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.allclose(np.array(temp), np.array(data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "collapsed": false,
    "uuid": "1e46b72f-22e2-4cc1-84a9-3c238f47c128"
   },
   "outputs": [],
   "source": [
    "temp = 0.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {
    "collapsed": false,
    "uuid": "8d68e5ac-7434-4e1c-b5b8-0c6f03171826"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 54446080 Aug  8 11:39 ./data/numbs.db\r\n",
      "-rw-r--r-- 1 trial_yves 48007208 Aug  8 11:39 ./data/numbs.h5s\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data as CSV File"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "collapsed": false,
    "uuid": "7925d095-cbde-430b-b2ef-f0f143df15b8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2.18 s, sys: 36 ms, total: 2.21 s\n",
      "Wall time: 3.14 s\n"
     ]
    }
   ],
   "source": [
    "%time data.to_csv(filename + '.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {
    "collapsed": false,
    "uuid": "074e493b-576f-4a3d-a9b5-cafd2045c75c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 895 ms, sys: 32 ms, total: 927 ms\n",
      "Wall time: 926 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fcce53954d0>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fcce7489f10>],\n",
       "       [<matplotlib.axes._subplots.AxesSubplot object at 0x7fcce7398690>,\n",
       "        <matplotlib.axes._subplots.AxesSubplot object at 0x7fcce738fb10>]], dtype=object)"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fcce5395150>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%time\n",
    "pd.read_csv(filename + '.csv')[['No1', 'No2',\n",
    "                                'No3', 'No4']].hist(bins=20)\n",
    "# tag: data_hist_3\n",
    "# title: Histogram of 4 data sets\n",
    "# size: 60"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data as Excel File"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {
    "collapsed": false,
    "uuid": "735350dc-e6af-4ee7-8f27-2505b3454682"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 13.6 s, sys: 67 ms, total: 13.6 s\n",
      "Wall time: 13.6 s\n"
     ]
    }
   ],
   "source": [
    "%time data[:100000].to_excel(filename + '.xlsx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "collapsed": false,
    "uuid": "0d2365b9-28b2-4bb5-8515-4c9ca628ec00"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 6.19 s, sys: 29 ms, total: 6.22 s\n",
      "Wall time: 6.33 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fccd5f46710>"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fcce51fd190>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%time pd.read_excel(filename + '.xlsx', 'Sheet1').cumsum().plot()\n",
    "# tag: data_paths\n",
    "# title: Paths of random data from Excel file\n",
    "# size: 60"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "collapsed": false,
    "uuid": "0f0f0a19-994c-43ff-940f-9cd05b94a0cd"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 48832698 Aug  8 11:39 ./data/numbs.csv\r\n",
      "-rw-r--r-- 1 trial_yves 54446080 Aug  8 11:39 ./data/numbs.db\r\n",
      "-rw-r--r-- 1 trial_yves 48007208 Aug  8 11:39 ./data/numbs.h5s\r\n",
      "-rw-r--r-- 1 trial_yves  4375861 Aug  8 11:40 ./data/numbs.xlsx\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {
    "collapsed": false,
    "uuid": "638a2e35-0a12-41be-9743-c7f4f4afcb23"
   },
   "outputs": [],
   "source": [
    "rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fast I/O with PyTables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {
    "collapsed": false,
    "uuid": "b671c317-5247-4a6b-94c9-0ee2850decba"
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import tables as tb\n",
    "import datetime as dt\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Working with Tables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "collapsed": false,
    "uuid": "4f7391d1-2f86-4913-af4d-2c603c970605"
   },
   "outputs": [],
   "source": [
    "filename = path + 'tab.h5'\n",
    "h5 = tb.open_file(filename, 'w') "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "collapsed": false,
    "uuid": "28c4dabe-bfbe-4a90-bd60-072c2e8f1aa1"
   },
   "outputs": [],
   "source": [
    "rows = 2000000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "collapsed": false,
    "uuid": "60a374d2-b78c-4473-b17a-69982fd27a4c"
   },
   "outputs": [],
   "source": [
    "row_des = {\n",
    "    'Date': tb.StringCol(26, pos=1),\n",
    "    'No1': tb.IntCol(pos=2),\n",
    "    'No2': tb.IntCol(pos=3),\n",
    "    'No3': tb.Float64Col(pos=4),\n",
    "    'No4': tb.Float64Col(pos=5)\n",
    "    }"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {
    "collapsed": false,
    "uuid": "027696b8-2e1b-489f-8cb6-c24c6c3702ee"
   },
   "outputs": [],
   "source": [
    "filters = tb.Filters(complevel=0)  # no compression\n",
    "tab = h5.create_table('/', 'ints_floats', row_des,\n",
    "                      title='Integers and Floats',\n",
    "                      expectedrows=rows, filters=filters)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "collapsed": false,
    "uuid": "71ce6940-bde4-437f-9daa-f2f577f3cd7e"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "/ints_floats (Table(0,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt='', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "collapsed": false,
    "uuid": "3830afd0-0a7b-439a-81b2-c81194deb7a5"
   },
   "outputs": [],
   "source": [
    "pointer = tab.row"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "collapsed": false,
    "uuid": "493096c9-7a8e-4342-b7c3-9390cbc03c6b"
   },
   "outputs": [],
   "source": [
    "ran_int = np.random.randint(0, 10000, size=(rows, 2))\n",
    "ran_flo = np.random.standard_normal((rows, 2)).round(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "collapsed": false,
    "uuid": "a15c64b5-17f2-4e11-b051-a6d68ba4bf7f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 5.48 s, sys: 1.48 s, total: 6.96 s\n",
      "Wall time: 8.31 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for i in range(rows):\n",
    "    pointer['Date'] = dt.datetime.now()\n",
    "    pointer['No1'] = ran_int[i, 0]\n",
    "    pointer['No2'] = ran_int[i, 1] \n",
    "    pointer['No3'] = ran_flo[i, 0]\n",
    "    pointer['No4'] = ran_flo[i, 1] \n",
    "    pointer.append()\n",
    "      # this appends the data and\n",
    "      # moves the pointer one row forward\n",
    "tab.flush()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "collapsed": false,
    "uuid": "0d0739a9-79a3-410a-abf0-20f6b8cef8c5"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "/ints_floats (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt='', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "collapsed": false,
    "uuid": "cff18aaa-9959-41a9-8f05-8ba42192368c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 100156256 Aug  8 11:40 ./data/tab.h5\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "collapsed": false,
    "uuid": "2b81e6f0-86a1-429f-8d7c-ac4bbdcdd616"
   },
   "outputs": [],
   "source": [
    "dty = np.dtype([('Date', 'S26'), ('No1', '<i4'), ('No2', '<i4'),\n",
    "                                 ('No3', '<f8'), ('No4', '<f8')])\n",
    "sarray = np.zeros(len(ran_int), dtype=dty)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "collapsed": false,
    "uuid": "15ef6c1c-c760-4bdd-9e1b-fe46c108abf8"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([('', 0, 0, 0.0, 0.0), ('', 0, 0, 0.0, 0.0), ('', 0, 0, 0.0, 0.0),\n",
       "       ..., ('', 0, 0, 0.0, 0.0), ('', 0, 0, 0.0, 0.0),\n",
       "       ('', 0, 0, 0.0, 0.0)], \n",
       "      dtype=[('Date', 'S26'), ('No1', '<i4'), ('No2', '<i4'), ('No3', '<f8'), ('No4', '<f8')])"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sarray"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {
    "collapsed": false,
    "uuid": "87071ae4-4ff2-402e-8746-037fee04b07c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 68 ms, sys: 6 ms, total: 74 ms\n",
      "Wall time: 97.3 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "sarray['Date'] = dt.datetime.now()\n",
    "sarray['No1'] = ran_int[:, 0]\n",
    "sarray['No2'] = ran_int[:, 1]\n",
    "sarray['No3'] = ran_flo[:, 0]\n",
    "sarray['No4'] = ran_flo[:, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "collapsed": false,
    "uuid": "992c3894-7eb7-4699-9e6b-2a6fb4e6eabf"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 17 ms, sys: 67 ms, total: 84 ms\n",
      "Wall time: 137 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "/ints_floats_from_array (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt='', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "h5.create_table('/', 'ints_floats_from_array', sarray,\n",
    "                      title='Integers and Floats',\n",
    "                      expectedrows=rows, filters=filters)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "collapsed": false,
    "uuid": "a7616365-19cf-4cbb-a6a0-01c3b88cb457"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "File(filename=./data/tab.h5, title=u'', mode='w', root_uep='/', filters=Filters(complevel=0, shuffle=False, fletcher32=False, least_significant_digit=None))\n",
       "/ (RootGroup) u''\n",
       "/ints_floats (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt='', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)\n",
       "/ints_floats_from_array (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt='', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "h5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "collapsed": false,
    "uuid": "f498bb1c-ef46-4ee9-956d-21f292687323"
   },
   "outputs": [],
   "source": [
    "h5.remove_node('/', 'ints_floats_from_array')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "collapsed": false,
    "uuid": "e99634bc-effd-43ee-ac2e-4b66b925433b"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([('2015-08-08 11:40:21.125696', 8447, 1703, -0.55426, 1.00547),\n",
       "       ('2015-08-08 11:40:21.125777', 4298, 4935, 1.05008, -0.84248),\n",
       "       ('2015-08-08 11:40:21.125789', 4966, 4264, -1.11746, -1.39637)], \n",
       "      dtype=[('Date', 'S26'), ('No1', '<i4'), ('No2', '<i4'), ('No3', '<f8'), ('No4', '<f8')])"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tab[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "collapsed": false,
    "uuid": "d84a41bd-36d3-4e11-8a4d-44440551a493"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.00547, -0.84248, -1.39637, -0.36036])"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tab[:4]['No4']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "collapsed": false,
    "uuid": "f7616601-4e98-42cc-9935-c855877d178c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 14 ms, sys: 23 ms, total: 37 ms\n",
      "Wall time: 36.8 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "-343.2385100000007"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time np.sum(tab[:]['No3'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "collapsed": false,
    "uuid": "9061ed32-44db-4c13-a44a-92b313b4af40"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 20 ms, sys: 24 ms, total: 44 ms\n",
      "Wall time: 44.1 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "133356802.96212333"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time np.sum(np.sqrt(tab[:]['No1']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {
    "collapsed": false,
    "uuid": "558b4627-15f8-4a8f-8d5a-fc7213ee074e"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2000000\n",
      "CPU times: user 196 ms, sys: 38 ms, total: 234 ms\n",
      "Wall time: 233 ms\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nc8edy9AAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fccdd62d550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%time\n",
    "plt.hist(tab[:]['No3'], bins=30)\n",
    "plt.grid(True)\n",
    "print len(tab[:]['No3'])\n",
    "# tag: data_hist\n",
    "# title: Histogram of data\n",
    "# size: 60"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "collapsed": false,
    "uuid": "62ea755e-493b-4230-96ad-0ce7a0a33acc"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 281 ms, sys: 27 ms, total: 308 ms\n",
      "Wall time: 322 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "res = np.array([(row['No3'], row['No4']) for row in\n",
    "        tab.where('((No3 < -0.5) | (No3 > 0.5)) \\\n",
    "                 & ((No4 < -1) | (No4 > 1))')])[::100]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "collapsed": false,
    "uuid": "705d91ca-dc94-4db1-84d7-164fb5f5f1af"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nyv8DWSbfe7vtMdwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fccdceaa890>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(res.T[0], res.T[1], 'ro')\n",
    "plt.grid(True)\n",
    "# tag: scatter_data\n",
    "# title: Scatter plot of query result\n",
    "# size: 70"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {
    "collapsed": false,
    "uuid": "a9e8e16c-9af5-48dc-bf5c-39b353f5c09b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Max              4.928\n",
      "Ave             -0.000\n",
      "Min             -5.233\n",
      "Std              0.999\n",
      "CPU times: user 18 ms, sys: 17 ms, total: 35 ms\n",
      "Wall time: 35.1 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "values = tab.cols.No3[:]\n",
    "print \"Max %18.3f\" % values.max()\n",
    "print \"Ave %18.3f\" % values.mean()\n",
    "print \"Min %18.3f\" % values.min()\n",
    "print \"Std %18.3f\" % values.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "collapsed": false,
    "uuid": "6cfb0992-c393-45b0-999b-b242ea9c1ce6"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(193, 4614)\n",
      "(9912, 5205)\n",
      "(9863, 5004)\n",
      "(9988, 4646)\n",
      "CPU times: user 67 ms, sys: 11 ms, total: 78 ms\n",
      "Wall time: 45.9 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "results = [(row['No1'], row['No2']) for row in\n",
    "           tab.where('((No1 > 9800) | (No1 < 200)) \\\n",
    "                    & ((No2 > 4500) & (No2 < 5500))')]\n",
    "for res in results[:4]:\n",
    "    print res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {
    "collapsed": false,
    "uuid": "399c76db-4f79-4264-b25f-50eab32303e0"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1234, 9870)\n",
      "(1234, 9843)\n",
      "(1234, 9793)\n",
      "(1234, 9920)\n",
      "(1234, 9991)\n",
      "(1234, 9791)\n",
      "CPU times: user 24 ms, sys: 20 ms, total: 44 ms\n",
      "Wall time: 31.1 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "results = [(row['No1'], row['No2']) for row in\n",
    "           tab.where('(No1 == 1234) & (No2 > 9776)')]\n",
    "for res in results:\n",
    "    print res"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Working with Compressed Tables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "collapsed": false,
    "uuid": "4e6ac124-2500-47c5-9478-2eaaba25ea00"
   },
   "outputs": [],
   "source": [
    "filename = path + 'tab.h5c'\n",
    "h5c = tb.open_file(filename, 'w') "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {
    "collapsed": false,
    "uuid": "830338b0-ec10-4f95-8058-62b1858b46b7"
   },
   "outputs": [],
   "source": [
    "filters = tb.Filters(complevel=4, complib='blosc')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "collapsed": false,
    "uuid": "d11f1cdc-c54a-49f3-992d-b76f7cad5a4a"
   },
   "outputs": [],
   "source": [
    "tabc = h5c.create_table('/', 'ints_floats', sarray,\n",
    "                        title='Integers and Floats',\n",
    "                      expectedrows=rows, filters=filters)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {
    "collapsed": false,
    "uuid": "a173ee6b-7dc3-4071-b995-842a46c46e97"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 337 ms, sys: 34 ms, total: 371 ms\n",
      "Wall time: 319 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "res = np.array([(row['No3'], row['No4']) for row in\n",
    "             tabc.where('((No3 < -0.5) | (No3 > 0.5)) \\\n",
    "                       & ((No4 < -1) | (No4 > 1))')])[::100]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {
    "collapsed": false,
    "uuid": "f4e1df40-c747-49a2-815c-f1cbd33f621d"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 9 ms, sys: 19 ms, total: 28 ms\n",
      "Wall time: 27.6 ms\n"
     ]
    }
   ],
   "source": [
    "%time arr_non = tab.read()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {
    "collapsed": false,
    "uuid": "f7428798-5946-49be-88b1-d67d26a41e70"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 75 ms, sys: 10 ms, total: 85 ms\n",
      "Wall time: 85.6 ms\n"
     ]
    }
   ],
   "source": [
    "%time arr_com = tabc.read()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {
    "collapsed": false,
    "uuid": "e21f417f-f123-41b5-b26b-ecebbbaa5c85"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 200312344 Aug  8 11:40 ./data/tab.h5\r\n",
      "-rw-r--r-- 1 trial_yves  41330925 Aug  8 11:40 ./data/tab.h5c\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {
    "collapsed": false,
    "uuid": "ea7dd80f-44d8-4cd9-a16f-308a302dd460"
   },
   "outputs": [],
   "source": [
    "h5c.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Working with Arrays"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {
    "collapsed": false,
    "uuid": "ee67fc74-5820-4037-b8d9-281c74435160"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2 ms, sys: 47 ms, total: 49 ms\n",
      "Wall time: 71.9 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "arr_int = h5.create_array('/', 'integers', ran_int)\n",
    "arr_flo = h5.create_array('/', 'floats', ran_flo)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {
    "collapsed": false,
    "uuid": "c91c089b-4727-4928-8069-2f74ab1f2c61"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "File(filename=./data/tab.h5, title=u'', mode='w', root_uep='/', filters=Filters(complevel=0, shuffle=False, fletcher32=False, least_significant_digit=None))\n",
       "/ (RootGroup) u''\n",
       "/floats (Array(2000000, 2)) ''\n",
       "  atom := Float64Atom(shape=(), dflt=0.0)\n",
       "  maindim := 0\n",
       "  flavor := 'numpy'\n",
       "  byteorder := 'little'\n",
       "  chunkshape := None\n",
       "/integers (Array(2000000, 2)) ''\n",
       "  atom := Int64Atom(shape=(), dflt=0)\n",
       "  maindim := 0\n",
       "  flavor := 'numpy'\n",
       "  byteorder := 'little'\n",
       "  chunkshape := None\n",
       "/ints_floats (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt='', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 133,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "h5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {
    "collapsed": false,
    "uuid": "5bf3d20c-0dd1-447f-b7ca-34adb0e9a2c6"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r-- 1 trial_yves 262344498 Aug  8 11:40 ./data/tab.h5\r\n",
      "-rw-r--r-- 1 trial_yves  41330925 Aug  8 11:40 ./data/tab.h5c\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {
    "collapsed": false,
    "uuid": "3dfffbc8-ab8e-4c6e-9e18-316d220e51a0"
   },
   "outputs": [],
   "source": [
    "h5.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {
    "collapsed": false,
    "uuid": "2a157cb2-dcc1-44fe-b4da-658bbe2b6ebb"
   },
   "outputs": [],
   "source": [
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Out-of-Memory Computations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {
    "collapsed": false,
    "uuid": "e241b3b2-bfe1-45b4-9e85-0b39586ca42a"
   },
   "outputs": [],
   "source": [
    "filename = path + 'array.h5'\n",
    "h5 = tb.open_file(filename, 'w') "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {
    "collapsed": false,
    "uuid": "dd0e24b0-d0cc-4cb0-90e0-7c6445dcb1d2"
   },
   "outputs": [],
   "source": [
    "n = 100\n",
    "ear = h5.createEArray(h5.root, 'ear',\n",
    "                      atom=tb.Float64Atom(),\n",
    "                      shape=(0, n))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {
    "collapsed": false,
    "uuid": "4dabef84-39ca-4dd4-a8ab-edc65d340965"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 22 ms, sys: 41 ms, total: 63 ms\n",
      "Wall time: 103 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "rand = np.random.standard_normal((n, n))\n",
    "for i in range(750):\n",
    "    ear.append(rand)\n",
    "ear.flush()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {
    "collapsed": false,
    "uuid": "4dd0218f-b9ca-4ee5-8a1f-af071e346c55"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "/ear (EArray(75000, 100)) ''\n",
       "  atom := Float64Atom(shape=(), dflt=0.0)\n",
       "  maindim := 0\n",
       "  flavor := 'numpy'\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (81, 100)"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ear"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {
    "collapsed": false,
    "uuid": "58694407-5d44-400d-99a1-252ea1595514"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "60004800L"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ear.size_on_disk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {
    "collapsed": false,
    "uuid": "f29bef2e-37fb-4f47-83fd-ef09041f2f77"
   },
   "outputs": [],
   "source": [
    "out = h5.createEArray(h5.root, 'out',\n",
    "                      atom=tb.Float64Atom(),\n",
    "                      shape=(0, n))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {
    "collapsed": false,
    "uuid": "aedc7c36-5839-4df5-8391-f0620b2c1381"
   },
   "outputs": [],
   "source": [
    "expr = tb.Expr('3 * sin(ear) + sqrt(abs(ear))')\n",
    "  # the numerical expression as a string object\n",
    "expr.setOutput(out, append_mode=True)\n",
    "  # target to store results is disk-based array"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {
    "collapsed": false,
    "uuid": "79542d3f-60fe-4303-abb8-2a21ce9512f2"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 299 ms, sys: 49 ms, total: 348 ms\n",
      "Wall time: 155 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "/out (EArray(75000, 100)) ''\n",
       "  atom := Float64Atom(shape=(), dflt=0.0)\n",
       "  maindim := 0\n",
       "  flavor := 'numpy'\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (81, 100)"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time expr.eval()\n",
    "  # evaluation of the numerical expression\n",
    "  # and storage of results in disk-based array"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {
    "collapsed": false,
    "uuid": "19d61e69-3488-4556-8d2b-cc06edb9c39e"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.56955402, -1.48452718,  2.79476317, -0.86067924, -1.77354003,\n",
       "        4.0839989 , -0.1265978 , -0.809659  , -1.18918272,  3.65645718])"
      ]
     },
     "execution_count": 145,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "out[0, :10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {
    "collapsed": false,
    "uuid": "2409ddc9-2963-4599-9d8c-a3abc1e010d3"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 10 ms, sys: 9 ms, total: 19 ms\n",
      "Wall time: 36.4 ms\n"
     ]
    }
   ],
   "source": [
    "%time imarray = ear.read()\n",
    "  # read whole array into memory"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "metadata": {
    "collapsed": false,
    "uuid": "65d5272f-66d9-4fdd-a16a-ae900f2842c4"
   },
   "outputs": [],
   "source": [
    "import numexpr as ne\n",
    "expr = '3 * sin(imarray) + sqrt(abs(imarray))'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {
    "collapsed": false,
    "uuid": "d58a70be-dc0f-444f-895d-9115864059c8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 252 ms, sys: 12 ms, total: 264 ms\n",
      "Wall time: 40.2 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([ 1.56955402, -1.48452718,  2.79476317, -0.86067924, -1.77354003,\n",
       "        4.0839989 , -0.1265978 , -0.809659  , -1.18918272,  3.65645718])"
      ]
     },
     "execution_count": 148,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ne.set_num_threads(16)\n",
    "%time ne.evaluate(expr)[0, :10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {
    "collapsed": false,
    "uuid": "d0c3ef43-f285-4dc1-b0ab-af206e6b3dd6"
   },
   "outputs": [],
   "source": [
    "h5.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {
    "collapsed": false,
    "uuid": "4343a20a-8132-4fbf-9360-3a627da7d0cf"
   },
   "outputs": [],
   "source": [
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conclusions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Further Reading"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"http://hilpisch.com/tpq_logo.png\" alt=\"The Python Quants\" width=\"35%\" align=\"right\" border=\"0\"><br>\n",
    "\n",
    "<a href=\"http://www.pythonquants.com\" target=\"_blank\">www.pythonquants.com</a> | <a href=\"http://twitter.com/dyjh\" target=\"_blank\">@dyjh</a>\n",
    "\n",
    "<a href=\"mailto:analytics@pythonquants.com\">analytics@pythonquants.com</a>\n",
    "\n",
    "**Python Quant Platform** |\n",
    "<a href=\"http://oreilly.quant-platform.com\">http://oreilly.quant-platform.com</a>\n",
    "\n",
    "**Derivatives Analytics with Python** |\n",
    "<a href=\"http://www.derivatives-analytics-with-python.com\" target=\"_blank\">Derivatives Analytics @ Wiley Finance</a>\n",
    "\n",
    "**Python for Finance** |\n",
    "<a href=\"http://shop.oreilly.com/product/0636920032441.do\" target=\"_blank\">Python for Finance @ O'Reilly</a>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python2",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
